'''
Created on 21/11/2012

@author: rcasal
'''
# -*- coding: utf-8 -*-

T.force('es-es')

from domain.entities.comunicacion import Comunicacion
from domain.entities.consulta import Consulta
from domain.entities.mail import MailConsulta, MailRespuesta
from bs4 import BeautifulSoup

if 0:
    None
    import gluon
    import gluon.languages.translator as T
    from gluon.html import A, DIV, LABEL, HTML, XML, BR
    from repositories.sigecon.consulta import ConsultaRepository as consultas
    from repositories.sigecon.consulta import ConsultaHistoryRepository as consultas_archive
    from repositories.sigecon.comunicacion import ComunicacionRepository as comunicaciones
    from repositories.sigecon.mails import MailConsultaRepository as mails_consulta
    from repositories.sigecon.mails import MailRespuestaRepository as mails_respuesta

def html_to_text(data):
    soup = BeautifulSoup(data)
    pageText = soup.findAll(text=True)
    string = ""
    for p in pageText:
        string = string + str(p)
#    pos = string.find("Fecha")
#    if pos != -1 and pos != 0:
#        string = string[:pos]
    return string

def func_info_consulta(ident):
    consulta = consultas.findOne(ident, asdict = True)
    info = DIV(
        DIV(LABEL("Fecha:"), consulta.comunicacion.creado_en.strftime("%d/%m/%Y %H:%M")),
        DIV(LABEL("Modalidad: "), consulta.comunicacion.modalidad.descripcion),
        DIV(LABEL("Tipo: "), consulta.comunicacion.condicion.descripcion),
        DIV(LABEL("Nombre: "), consulta.comunicacion.nombre),
        DIV(LABEL("Telefono: "), consulta.comunicacion.telefono),
        DIV(LABEL("Mail: "), consulta.comunicacion.mail)
    )
    if consulta.comunicacion.modalidad.descripcion != "MAIL":
        info.append(DIV(LABEL("Consulta: "), consulta.consulta.descripcion))
        info.append(DIV(LABEL("Subonsulta: "), consulta.subconsulta.descripcion))
        info.append(DIV(LABEL("Respuesta: "), consulta.respuesta.descripcion))
        info.append(DIV(LABEL("Comentario: "), consulta.comentarios))
    else:
        mails = mails_consulta.findByIdConsulta(consulta.id)
        info.append(BR())
        contenedor = DIV(_style="height:150px;overflow-y:scroll;border:0.5px solid #769dc4;width:480px")
        for mail in mails:
            mail = MailConsulta
            contenedor.append(DIV(LABEL("Recibido", _style="color:DodgerBlue")))
            contenedor.append(DIV(LABEL("Fecha: "), mail.Fecha.strftime("%d/%m/%Y %H:%M")))
            contenedor.append(DIV(LABEL("Contenido: "), mail.Text))
            mail_resp = mails_respuesta.findByIdMailConsulta(mail.ID)
            if mail_resp:
                contenedor.append(DIV(LABEL("Enviado", _style="color:DodgerBlue")))
                contenedor.append(DIV(LABEL("Fecha "), mail_resp.Fecha.strftime("%d/%m/%Y %H:%M")))
                contenedor.append(DIV(LABEL("Contenido: "), html_to_text("<body>" + mail_resp.Text + "</body>")))
            contenedor.append(BR())
        info.append(contenedor)
    return info
    
def info_consulta():
    ident = request.vars.numero
    return func_info_consulta(ident)


    
    
    